﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
using DTO;
using System.Data;

namespace GUI.Admin.uc
{
    public partial class Ad_KhachHangUC : System.Web.UI.UserControl
    {
        #region Khai báo
        private KhachHangBLL _khBLL;
        private KhachHangDTO _khDTO;
        private List<KhachHangDTO> _lst;
        private CommonBLL _cmBLL;
        #endregion

        #region Page_Load
        protected void Page_Load(object sender, EventArgs e)
        {
            /*
                 * Khi Form load thì thực hiện các thao tác sau:
                 * 1. Hiển thị Panel danh sách khách hàng           
                 * 2. Ẩn Panel thêm, sửa thông tin khách hàng           
                 * 3. Load dữ liệu vào Gridview
                 * 4. Hiển thị tổng số khách hàng vào Label
                 */
            if (!IsPostBack)
            {
                try
                {
                    // Load data vào gridview
                    this.LoadDuLieu();
                }
                catch (Exception ex)
                {
                    Response.Redirect("../ErrorMessage.aspx?err=" + ex.Message + " ");
                }
            }
        }
        #endregion

        #region Phương thức hiển thị danh sách khách hàng vào gridview
        /// <summary>
        /// Phương thức hiển thị danh sách khách hàng vào gridview
        /// </summary>
        private void LoadDuLieu()
        {
            _khBLL = new KhachHangBLL();
            _lst = new List<KhachHangDTO>();

            try
            {
                this.PanelDanhSachKhachHang.Visible = true;

                _lst = _khBLL.GetListKhachHang();
                GridViewKhachHang.DataSource = _lst;
                GridViewKhachHang.DataBind();

                // Hiển thị tổng số khách hàng vào Label
                int d = _lst.Count;
                this.LabelTongSoKhachHang.Text = Convert.ToString(d);
                if (d == 0)
                {
                    this.LabelThongBao.Text = "Chưa có khách hàng nào !";
                    this.LabelThongBao.Visible = true;
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        #endregion

        #region GridViewKhachHang_PageIndexChanging
        protected void GridViewKhachHang_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            try
            {
                GridViewKhachHang.PageIndex = e.NewPageIndex;
                this.LoadDuLieu();
            }
            catch (Exception ex)
            {
                Response.Redirect("../ErrorMessage.aspx?err=" + ex.Message + " ");
            }
        }
        #endregion

        #region GridViewKhachHang_RowDataBound
        protected void GridViewKhachHang_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            try
            {
                if (e.Row.RowIndex >= 0)
                {
                    e.Row.Attributes.Add("onMouseOver", "this.style.backgroundColor='#bde2fd'");

                    if (e.Row.RowIndex % 2 == 0)
                        e.Row.Attributes.Add("onMouseOut", "this.style.backgroundColor='#EFF3FB'");
                    else
                        e.Row.Attributes.Add("onMouseOut", "this.style.backgroundColor='White'");

                }
            }
            catch (Exception ex)
            {
                Response.Redirect("../ErrorMessage.aspx?err=" + ex.Message + " ");
            }
        }
        #endregion

        #region GridViewKhachHang_RowCommand
        protected void GridViewKhachHang_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                if (e.CommandName == "Block")
                {
                    string _makh = e.CommandArgument.ToString();
                    _khDTO = new KhachHangDTO();
                    _khBLL = new KhachHangBLL();

                    _khDTO = _khBLL.GetKhachHang(_makh);
                    _khDTO.TinhTrang = 0; // Cập nhật tình trạng = 0

                    if (_khBLL.Sua(_khDTO) != -1)
                    {
                        Page.ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('Đã khóa tài khoản thành công');", true);
                        // Hiển thị Panel danh sách
                        this.PanelDanhSachKhachHang.Visible = true;

                        // Load lại Gridview
                        this.LoadDuLieu();
                    }
                    else
                    {
                        Page.ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('Khóa tài khoản không thành công. Xin kiểm tra lại thông tin');", true);
                    }
                    return;
                }


                if (e.CommandName == "Active")
                {
                    string _makh = e.CommandArgument.ToString();
                    _khDTO = new KhachHangDTO();
                    _khBLL = new KhachHangBLL();

                    _khDTO = _khBLL.GetKhachHang(_makh);
                    _khDTO.TinhTrang = 1; // Cập nhật tình trạng = 0

                    if (_khBLL.Sua(_khDTO) != -1)
                    {
                        Page.ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('Đã kích hoạt tài khoản thành công');", true);
                        // Hiển thị Panel danh sách
                        this.PanelDanhSachKhachHang.Visible = true;

                        // Load lại Gridview
                        this.LoadDuLieu();
                    }
                    else
                    {
                        Page.ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('Kích hoạt tài khoản không thành công. Xin kiểm tra lại thông tin');", true);
                    }
                    return;
                }

            }
            catch (Exception ex)
            {
                Response.Redirect("../ErrorMessage.aspx?err=" + ex.Message + " ");
            }
        }
        #endregion

        #region Phương thức load tình trạng: kích hoạt hay chưa kích hoạt
        /// <summary>
        /// Phương thức load tình trạng: kích hoạt hay chưa kích hoạt
        /// </summary>
        /// <param name="tinhtrang"></param>
        /// <returns></returns>
        protected string LoadTinhTrang(object tinhtrang)
        {
            int result = Convert.ToInt32(tinhtrang);



            return result == Convert.ToInt16(1) ? "Đã kích hoạt" : "Chưa kích hoạt";
        }
        #endregion

        #region ImageButtonTroLai_Click
        protected void ImageButtonTroLai_Click(object sender, ImageClickEventArgs e)
        {
            Response.Redirect("~/Admin/Default.aspx");
        }
        #endregion
    }
}